package com.ets.common;

import com.ets.Address_DAO.AddressDAO;
import com.ets.Address_DAO.AddressDB;
import com.ets.Codes_DAO.CodeTypeDAO;
import com.ets.Codes_DAO.CodeTypeDB;
import com.ets.Codes_DAO.CodeValueDAO;
import com.ets.Codes_DAO.CodeValueDB;
import com.ets.Customer_DAO.CustomerDAO;
import com.ets.Customer_DAO.CustomerDB;
import com.ets.Expense_DAO.ExpenseDAO;
import com.ets.Expense_DAO.ExpenseDB;
import com.ets.NxtNmbr_DAO.NxtNmbrDAO;
import com.ets.NxtNmbr_DAO.NxtNmbrDB;
import com.ets.Tax_DAO.TaxDAO;
import com.ets.Tax_DAO.TaxDB;
import com.ets.User_DAO.UserDAO;
import com.ets.User_DAO.UserDB;
import com.ets.Vehicle_DAO.VehicleDAO;
import com.ets.Vehicle_DAO.VehicleDB;
import com.ets.Vendor_DAO.VendorDAO;
import com.ets.Vendor_DAO.VendorDB;

/*------------------------------------------------------------------------------
 System-wide <big><b>DAOFactory</b></big> class
 <br><br>
 @author D.Merkling - 1:33:38 PM - Aug 22, 2011
 <br><br>
 @version 1.0  
------------------------------------------------------------------------------*/
public abstract class DAOFactory
  {
   /*------------------------------------------------------------------------------
	 Maps the UserDAO interface to the appropriate data storage mechanism
	------------------------------------------------------------------------------*/
   public static UserDAO getUserDAO ()
	 {
	  UserDAO uDAO = new UserDB();
	  return uDAO;
	 }

   /*------------------------------------------------------------------------------
	 Maps the CodeTypeDAO interface to the appropriate data storage mechanism
	------------------------------------------------------------------------------*/
   public static CodeTypeDAO getCodeTypeDAO ()
	 {
	  CodeTypeDAO ctDAO = new CodeTypeDB();
	  return ctDAO;
	 }

   /*------------------------------------------------------------------------------
	 Maps the CodeValueDAO interface to the appropriate data storage mechanism
	------------------------------------------------------------------------------*/
   public static CodeValueDAO getCodeValueDAO ()
	 {
	  CodeValueDAO cvDAO = new CodeValueDB();
	  return cvDAO;
	 }

   /*------------------------------------------------------------------------------
	 Maps the NxtNmbrDAO interface to the appropriate data storage mechanism
	------------------------------------------------------------------------------*/
   public static NxtNmbrDAO getNxtNmbrDAO ()
	 {
	  NxtNmbrDAO nnDAO = new NxtNmbrDB();
	  return nnDAO;
	 }
  
   /*------------------------------------------------------------------------------
	 Maps the AddressDAO interface to the appropriate data storage mechanism
	------------------------------------------------------------------------------*/
   public static AddressDAO getAddressDAO ()
	 {
	  AddressDAO aDAO = new AddressDB();
	  return aDAO;
	 }
  
   /*------------------------------------------------------------------------------
	 Maps the VendorDAO interface to the appropriate data storage mechanism
	------------------------------------------------------------------------------*/
   public static VendorDAO getVendorDAO ()
	 {
	  VendorDAO vDAO = new VendorDB();
	  return vDAO;
	 }

   /*------------------------------------------------------------------------------
	 Maps the CustomerDAO interface to the appropriate data storage mechanism
	------------------------------------------------------------------------------*/
   public static CustomerDAO getCustomerDAO ()
	 {
	  CustomerDAO cDAO = new CustomerDB();
	  return cDAO;
	 }
  
   /*------------------------------------------------------------------------------
	 Maps the VehicleDAO interface to the appropriate data storage mechanism
	------------------------------------------------------------------------------*/
   public static VehicleDAO getVehicleDAO ()
	 {
	  VehicleDAO vDAO = new VehicleDB();
	  return vDAO;
	 }

   /*------------------------------------------------------------------------------
	 Maps the ExpenseDAO interface to the appropriate data storage mechanism
	------------------------------------------------------------------------------*/
   public static ExpenseDAO getExpenseDAO ()
	 {
	  ExpenseDAO eDAO = new ExpenseDB();
	  return eDAO;
	 }

   /*------------------------------------------------------------------------------
	 Maps the TaxDAO interface to the appropriate data storage mechanism
	------------------------------------------------------------------------------*/
   public static TaxDAO getTaxDAO ()
	 {
	  TaxDAO tDAO = new TaxDB();
	  return tDAO;
	 }
  }